package com.atguigu0.core

import org.apache.spark.rdd.RDD

/**
 * @description: xxx
 * @time: 2020/6/12 22:21
 * @author: baojinlong
 **/
class Search(query: String) extends Serializable {
  /**
   * 过滤出包含字符串的数据
   *
   * @param s
   * @return
   */
  def isMatch(s: String): Boolean = {
    s.contains(query)
  }

  /**
   * 过滤出包含字符串的Rdd
   *
   * @param rdd
   * @return
   */
  def getMatch1(rdd: RDD[String]): RDD[String] = {
    rdd.filter(isMatch)
  }

  /**
   * 过滤出包含字符串的Rdd
   *
   * @param rdd
   * @return
   */
  def getMatch2(rdd: RDD[String]): RDD[String] = {
    // 或者使用下面的方法就算类没有实现序列化也能够执行,因为赋值操作在driver中已经执行了
    val str: String = this.query
    rdd.filter(x => x.contains(str))
  }
}
